/**
 * Description:
 * Class Name:GenericDiamondTest
 * Date:2022/3/25 18:08
 *
 * @author LTisme
 * @version JAVA17
 */
package 疯狂Java讲义.第9章_泛型._9_4_泛型方法._9_4_3_菱形语法与泛型构造器;

class MyClass<E>{
    public <T> MyClass (T t){
        System.out.println("parameter t is: " + t);
    }
}

public class GenericDiamondTest {
    public static void main(String[] args) {
        // MyClass 类声明中的E形参是String类型
        // 泛型构造器中声明的T形参是Integer类型
        MyClass<String> mc1 = new MyClass<>(5);

        // 显式指定泛型构造器中声明的T形参是Integer类型
        MyClass<String> mc2 = new <Integer> MyClass<String>(5);
        // MyClass 类声明中的E形参是String类型
        // 如果显式指定泛型构造器中声明的T形参是Integer类型
        // 此时就不能使用“菱形”语法，下面代码是错误的
//        MyClass<String> mc3 = new <Integer> MyClass<>(5);
    }
}
